草庐IT

JavaFX - 许多静态 FXML Controller

全部标签

c# - 我应该让我的私有(private)类方法静态化吗?

是否有将类中的私有(private)方法设为静态的最佳实践?我有一个有几种方法的类(class)。其中一些可以很容易地变成静态的,因为它们只是处理数据。我应该让它们保持静态还是保持原样?这更多是风格问题吗?是否有性能方面的考虑?编辑:Methodcanbemadestatic,butshouldit? 最佳答案 如果方法不访问任何类型的状态,那么它们应该是静态的。静态方法调用提供了优于实例方法的性能增益,并且静态方法的存在告诉future代码的读者调用此方法不会对该类型的当前实例的状态产生副作用。静态方法的性能提升来自于这样一个事实

c# - 如何在 C# 中将 "import"设置为静态类?

我已经创建了一个公共(public)静态类utils.cs我想在其他类中使用它而不用utils为方法添加前缀,这样做的语法是什么? 最佳答案 在C#中无法执行此操作-例如,没有直接等效于Java的静态导入功能。有关为什么会出现这种情况的更多信息,请参阅EricLippert'spost关于这个话题和similarSOquestion.然而,在某些情况下,编写存在于非嵌套静态类中但“假装”为不同类的实例方法的扩展方法可能是有意义的。在介绍这些内容之前值得仔细考虑,因为它们可能令人困惑-但如果明智地使用它们也可以提高可读性。您想到了哪种

c# - 我什么时候应该写静态方法?

所以我明白了什么是静态方法或字段,我只是想知道什么时候使用它们。也就是说,在编写代码时,什么设计适合使用静态方法和字段。一种常见的模式是将静态方法用作静态工厂,但这可以通过重载构造函数来轻松完成。正确的?例如:varbmp=System.Drawing.Bitmap.LoadFromFile("Image01.jpg");至于静态字段,创建单一对象是否是它们的最佳用途? 最佳答案 静态方法通常适用于不需要来自类实例(来自this)的任何数据的操作,并且可以仅使用它们的参数来执行它们的预期目的。一个简单的例子是Point::dista

c# - 静态事件与 C# 中的非静态事件相比如何?

我刚刚意识到存在静态事件-我很好奇人们如何使用它们。我想知道相对比较如何支持静态方法与实例方法。例如,静态方法基本上是一个全局函数。但我总是将事件与对象的实例联系起来,但我很难在全局层面考虑它们。这里有一些代码可以引用,如果它有助于解释:voidMain(){varc1=newC1();c1.E1+=()=>Console.WriteLine("E1");C1.E2+=()=>Console.WriteLine("E2");c1.F1();}//>+D()publicdelegatevoidD();//+>E1//+>>E2//+F()//>//>E1//>E2publicclassC

c# - 静态属性赋值后为空

我有这个代码:staticclassGlobal{publicstaticreadonlyIChannelsDataChannels=newChannelsData();publicstaticreadonlyIMessagesDataMessages=newMessagesData();}我的理解是,因为这个类是静态的,所以Global.Channels或Global.Messages不可能为空,因为它们已经被赋予了一个实例.但是,我尝试访问该属性publicclassChannel:IComparable{...privateSortedList_messages;[JsonCon

c# - 由于静态字段初始化的顺序,如何捕获或标记潜在问题

考虑以下C#代码:usingSystem;classProgram{staticstringstring1="AAA";staticstringstring2=string1+string3;staticstringstring3="BBB";staticvoidMain(){Console.WriteLine(string2);}}我今天早些时候写了一些这样的代码,并期望string2包含值AAABBB,但它只包含AAA。我阅读了一些有关静态变量初始化顺序的资料,但对我来说,编译期间会生成某种类型的警告或错误似乎更可取。两个问题:为什么允许这样的代码编译成功?(如果答案是:“因为C#

c# - XAML 绑定(bind)到带有参数的静态方法

我有一个像下面这样的静态类:publicstaticclassLang{publicstaticstringGetString(stringname){//CODE}}现在我想在xaml中以绑定(bind)的形式访问这个静态函数。有没有这样的方法例如:或者是否有必要为每个可能的参数创建一个ObjectDataProvider?希望有人能帮助我。提前致谢! 最佳答案 我也有这个需求。我使用转换器“解决”了(如建议的here)。首先,创建一个返回翻译字符串的转换器:publicclassLanguageConverter:IValueC

c# - 字段初始值设定项不能引用非静态字段、方法或属性?

我有一个存储库类和一个服务类,如下所示:publicclassDinnerRepository{DinnerDataContextdb=newDinnerDataContext();publicDinnerGetDinner(intid){returndb.Dinners.SingleOrDefault(d=>d.DinnerID==id);}//OthersCode}publicclassService{DinnerRepositoryrepo=newDinnerRepository();Dinnerdinner=repo.GetDinner(5);//OtherCode}这会引发错

C#抽象类静态字段继承

我觉得我跳过了一两节C#课,但这是我的困境:我有一个抽象类,我从中派生了多个子类。我确信对于每个子类我都会有一个构造函数,它需要一个特定的静态对象作为模型,并且这个对象对于每个子类都是不同的。我的第一个方法是在抽象父类中创建一个公共(public)静态对象,然后,在我开始创建子类的任何实例之前,我会为每个子类修改它,但事实证明,这样我实际上只为抽象类创建一个静态对象,它的每个子类都使用它。我该如何解决这个问题?更准确地说,这是伪代码:父抽象类:abstractclassAbstractClass{staticpublicModelObjectModel;...}子类之一:classCh

c# - 为什么非静态类中有所有静态方法/变量?

我遇到过一个非静态类,但所有方法和变量都是静态的。例如:publicclassClass1{privatestaticstringString1="one";privatestaticstringString2="two";publicstaticvoidPrintStrings(stringstr1,stringstr2){...所有变量在所有实例中都是静态的,因此没有必要拥有类的单独实例。是否有理由创建这样的类? 最佳答案 类是在.NET1.x时代写的吗?静态类直到C#2.0才出现。